//
//  AspectProxy.h
//  精通Objective-C
//
//  Created by 花强 on 2017/12/21.
//  Copyright © 2017年 花强. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Invoker.h"

@interface AspectProxy : NSProxy

@property (nonatomic , strong) id proxyTarget;//该属性是通过NSProxy实例转发消息的真正对象；
@property (nonatomic , strong) id<Invoker> invoker;//该属性是一个能够实现横切功能的类（遵循Invoker协议）的实例；
@property (nonatomic , strong , readonly) NSMutableArray * selectors;//该属性是一个选择器集合，定义了哪些消息会调用横切功能；

-(id)initWithObject:(id)object andInvoker:(id<Invoker>)invoker;
-(id)initWithObject:(id)object selectors:(NSArray *)selectors andInvoker:(id<Invoker>)invoker;
-(void)registerSelector:(SEL)selector;//会向集合中添加一个选择器

@end
